<?php
/**
 *
 * 마스터키 관리 class
 *
 *
 */

class utilDesKeyManager
{
    private static $instance;
    private $manager_file = '';

    function __construct()
    {
        $this->manager_file = SC_DIR_RESOURCE.'/secure/master_key.ini';
    }

    public function _getMasterKey()
    {
        /*
        if (!file_exists($this->manager_file)) {
            $this->setFirstMakeManagerFile();
        }
        */

        $aMasterKey = $this->getFileReadMasterKey();

        return $aMasterKey;
    }

    /**
     *
     * 마스터 키 정보 조회
     */
    private function getFileReadMasterKey()
    {
        $aMasterKeyCont = explode('&', file_get_contents($this->manager_file));
        for ($i = 0; $i < count($aMasterKeyCont); $i++) {
            list ($key, $value) = explode('=', $aMasterKeyCont[$i]);
            $aMasterKey[$key] = $value;
        }

        return $aMasterKey;
    }

    public static function getMasterKey()
    {
        if (!self::$instance) {
            self::$instance = new utilDesKeyManager();
        }

        return self::$instance->_getMasterKey();
    }

    /**
     *
     * 최초 마스터키 생성
     *
     * todo
     * - 현재는 master key 를 지정해서 사용하고 추후 삭제, 생성 기능을 넣는다.
     */
    /*
    private function setFirstMakeManagerFile()
    {
        $aMasterKey = array();
        $aMasterKey['currentMasterKey'] = $this->generateKey();
        $aMasterKey['oldMasterKey'] = 'wpswkd33..-_-;;';

        $this->setSaveFile($aMasterKey);
    }
    */

    /**
     *
     * 랜덤 키 생성
     * @param string $sLetters
     */
    /*
    private function generateKey($sLetters = '1234567890qwertyuiopasdfghjklzxcvbnm')
    {
        $sGenerateKey = '';
        $iLettersLength = strlen($sLetters) - 1;

        for ($i = 0; $i < 15; $i++) {
            $sGenerateKey .= $sLetters[rand(0, $iLettersLength)];
        }

        return $sGenerateKey;
    }
    */

    /**
     *
     * masterkey 생성
     * @param array $aMasterKey
     */
    /*
    private function setSaveFile($aMasterKey)
    {
        $sSaveText = 'currentMasterKey='.$aMasterKey['currentMasterKey'].'&oldMasterKey='.$aMasterKey['oldMasterKey'];
        // utilFile::write($this->manager_file, $saveTxt);
    }
    */
}
